完全可以想象类模板可以在其模板参数上重载。例如，创建一系列数组模板，其中包含动态和静态的数组:

\begin{lstlisting}[style=styleCXX]
template<typename T>
class Array {
	// dynamically sized array
	...
};

template<typename T, unsigned Size>
class Array {
	// fixed size array
	...
};
\end{lstlisting}

重载并不一定局限于模板参数的数量，参数类型也可以改变:

\begin{lstlisting}[style=styleCXX]
template<typename T1, typename T2>
class Pair {
	// pair of fields
	...
};

template<int I1, int I2>
class Pair {
	// pair of constant integer values
	...
};
\end{lstlisting}

虽然语言设计者已经非正式地讨论过了这个想法，但是还没有正式地提交给C++标准委员会。











































